package lg.iu;

import wolf.iu.framework.hooks.AbstractFieldHookEnum;

public enum FieldHooks implements AbstractFieldHookEnum {
    // Client
    LocalPlayer, BaseX, BaseY, GetWorld("World"), MyCountry, GEItems, MyPlayerRights,
    GetItemDefLoader, GameState, GetIFaceCache, GetSettingData, GetTileData,
    GetMinimapSetting, GetMinimapAngle, GetSkillExperiences, GetSkillLevels,
    GetSkillLevelsMaxes, GetCamPosX, GetCamPosY, GetCamPosZ, GetChatLines,
    IsMenuCollapsed, GetMenuItems, GetCollapsedMenuItems, GetCallBack,
    GetCanvas, GetCameraPitch, GetCameraYaw, GetCurrentUsername, GetDestX,
    GetDestY, GetDetailInfoNode, GetGroundByteArray, GetGUIInterfaceIndex,
    GetIdleTime, GetKeyboard, GetMenuOptionsCount, GetMenuX, GetMenuY,
    GetCurrentMenuGroupNode, GetSubMenuX, GetSubMenuY, GetSubMenuWidth,
    GetMinimapOffset, GetMinimapScale, GetMouse, GetPlane, GetPublicChatMode,
    GetGroundArray, GetGroundDataArray, GetInteractingDefList,
    GetInterfaceBoundsArray, GetInterfaceNC, GetItemHashTable, GetNpcNC,
    GetNPCCount, GetNPCIndexArray, GetPlayerArray, GetPlayerCount,
    GetPlayerIndexArray, GetSelectedItemName, GetSelfInteracting, GetSignLink,
    GetSkillExperiencesMaxes, GetValidInterfaceArray, IsFlagged, /*originally isitemselected but its an int*/GetItemSelected,
    IsMenuOpen, IsSpellSelected, GetObjectDefLoader, GetInteractableDefListLoader,
    GetWorldData, GETCURVESIN, GETCURVECOS,
    // Player
    GetPlayerDef("def"), PlayerName ("Name"),
    // Character
    LocalX, LocalY,
    // Animable
    Plane, AnimableX, AnimableY,
    
    // SettingData
    GetData,
    
    // TileData
    GetHeights,
    
    // World
    WorldId,
    
    // AnimableList
    GetNextAnimableNode, GetCurrentAnimable,
    
    // ItemDef
    CertTemplateId, CertId, IsMembers("Members"), ItemDefName ("Name"), GroundActions,
    Actions, Value, Stackable,
    
    // GEItem
    GEItemId ("Id"), Price, Total, Transfered, Spent,
    
    // Interface
    Width, Height, IsHidden ("Hidden"), HScroll, MaxHScroll, MinHScroll, VScroll, MaxVScroll,
    MinVScroll, TextColor, TextureId, ModelType, ModelId, ModelRotationX, ModelRotationY,
    ModelRotationZ, ModelZoom, Text , IsInventoryInterface ("InventoryInterface"),
    BorderThickness, ShadowColor, FlippedVertically, FlippedHorizontally, ItemName,
    SelectedActionName, ItemActions, InventoryX("X"), InventoryY("Y"), ParentId,
    ItemId, ItemStackSize, ItemIndex
    
    
    ;
    
    String getterReadyName;
    
    FieldHooks(final String... grn) {
        if (grn.length > 0) {
            this.getterReadyName = grn[0];
        }
    }

    @Override
    public String getName() {
        return this.name();
    }

    @Override
    public String getGetterReadyName() {
        return getterReadyName;
    }

}
